package com.kuaiyin.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kuaiyin.dto.TestPlanDTO;
import com.kuaiyin.entity.TestPlan;
import com.kuaiyin.utils.PageResult;
import com.kuaiyin.vo.TestPlanVO;

import java.util.List;
import java.util.Map;
import java.util.function.Consumer;

/**
 * <p>
 * 测试计划表 服务类
 * </p>
 *
 * @author ng
 * @since 2025-04-30
 */
public interface ITestPlanService extends IService<TestPlan> {

    void saveTestPlan(TestPlanDTO testPlanDTO);

    void updateTestPlan(Long id, TestPlanDTO testPlanDTO);

    void  removeById(Long id);

    TestPlanVO  getById(Long id);

    List<TestPlanVO> getTestPlanList();

    void updateTestPlanStatus(Long id, Integer status);

    PageResult<TestPlanVO> getTestPlanPage(Integer page, Integer size, Consumer<LambdaQueryWrapper<TestPlan>> condition);

    void runTestPlan(Long id);

    void stopTestPlan(Long id);

    List<TestPlan> listByScheduleConfigNotNull();

    Map<String, String> getPlan(Long id);
}
